import java.util.Scanner;

public class Test {
//    public static int func(float c,int sum){
//
//        if(c <= 1.0f){
//
//            return 20;
//        }
//
//        return func(c - 1.0f,sum )+1;
//
//    }
//    public static void main(String[] args) {
//        Scanner in = new Scanner(System.in);
//        // 注意 hasNext 和 hasNextLine 的区别
//        while (in.hasNextLine()) { // 注意 while 处理多个 case
//            String a = in.nextLine();
//            String b = in.nextLine();
//            int sum1 = 0;
//            float c = Float.parseFloat(a);
//            int sum2 = func(c,sum1);
//            if(b.compareTo("y") == 0){
//                System.out.println(sum2 + 5);
//            }else if(b.compareTo("n") == 0){
//                System.out.println(sum2);
//            }
//        }
//
//    }



        public static void main(String[] args) {

            Scanner in = new Scanner(System.in);
            int[] cost = new int[in.nextInt()];
            for (int i = 0; i < cost.length; i++) {
                cost[i] = in.nextInt();
            }
            System.out.println(minCostClimbingStairs(cost));
        }

        private static int minCostClimbingStairs(int[] cost) {
            int[] dp = new int[cost.length + 1];
            for (int i = 2; i <= cost.length; i++) {
                dp[i] = Math.min(dp[i - 2] + cost[i - 2], dp[i - 1] + cost[i - 1]);
            }

            return dp[cost.length];
        }


}
